//module  dds_sin_FM                        //K=300
//(
//input clk,rst_n,clkfc,
//input CS_dds_FM,
//input wr_n,
//input [7:0]addr,
//input [31:0]date_in,
//output [13:0]date_sin_FM,
//output [11:0]add_sin_12_FM
//);
//wire [19:0]date_k=20'd1000;    //此处的date_k应在正式调试时做出修改
//wire [31:0]date_k_result;
//wire [31:0]date_sin_1k_result;
//reg [19:0]add_sin_FM;
////always@(posedge clk,negedge rst_n)
////begin
//// if(!rst_n)
////  date_k<=20'd0;
//// else if(CS_dds_FM&&(!wr_n))
////  case (addr)
////   8'd0:date_k<=date_in[19:0];
////	default:date_k<=date_k;
////  endcase
////end
//always@(posedge clkfc,negedge rst_n)
//begin
// if(!rst_n)
//  add_sin_FM<=20'd0;
// else
//  begin
//  add_sin_FM<=add_sin_FM+date;
//  end
//end
//wire[19:0]date,date_1,date_2;
//mult_date_k	mult_date_k_inst (
//	.dataa ( date_k ),
//	.result ( date_k_result )
//	);
//assign date_1[19:0]=date_k_result[31:12];
//mult_date_sin_1k	mult_date_sin_1k_inst (
//.dataa ( date_sin_1k ),
//.result ( date_sin_1k_result )
//);
//assign date_2[19:0]=date_sin_1k_result[31:12];
//assign date=date_1+date_2;
//
//assign add_sin_12_FM=add_sin_FM[19:8];
//sinrom_add12_date14	sinrom_add12_date14_inst (
//	.address ( add_sin_12_FM ),
//	.clock ( clkfc ),
//	.q ( date_sin_FM )
//	);
//
//wire[11:0]add_sin_1k;
//wire[13:0]date_sin_1k;
//sin1khz sin1khz_inst
//(
//	.rst_n(rst_n) ,	// input  rst_n_sig
//	.clkfc(clkfc) ,	// input  clkfc_sig
//	.add_sin_1k(add_sin_1k) ,	// output [19:0] add_sin_1k_sig
//	.date_sin_1k(date_sin_1k) 	// output [13:0] date_sin_1k_sig
//);
//
//endmodule 
module  dds_sin_FM                        //K=300
(
input clkfc,rst_n,clk,
input CS_dds_FM,
input wr_n,
input [7:0]addr,
input [31:0]date_in,
output [13:0]date_sin_FM,
output [11:0]add_sin_12_FM
);
wire [19:0]date_k=20'd10000;
wire [31:0]date_k_result;
wire [31:0]date_sin_1k_result;
reg [19:0]add_sin_FM;
always@(posedge clkfc,negedge rst_n)
begin
 if(!rst_n)
  add_sin_FM<=20'd0;
 else
  begin
  add_sin_FM<=add_sin_FM+date;
  end
end
wire[19:0]date,date_1,date_2;
mult_date_k	mult_date_k_inst (
	.dataa ( date_k ),
	.result ( date_k_result )
	);
assign date_1[19:0]=date_k_result[31:12];
mult_date_sin_1k	mult_date_sin_1k_inst (
.dataa ( date_sin_1k ),
.result ( date_sin_1k_result )
);
assign date_2[19:0]=date_sin_1k_result[31:12];
assign date=date_1+date_2;

assign add_sin_12_FM=add_sin_FM[19:8];
sinrom_add12_date14	sinrom_add12_date14_inst (
	.address ( add_sin_12_FM ),
	.clock ( clkfc ),
	.q ( date_sin_FM )
	);

wire[11:0]add_sin_1k;
wire[13:0]date_sin_1k;
sin1khz sin1khz_inst
(
	.rst_n(rst_n) ,	// input  rst_n_sig
	.clkfc(clkfc) ,	// input  clkfc_sig
	.add_sin_1k(add_sin_1k) ,	// output [19:0] add_sin_1k_sig
	.date_sin_1k(date_sin_1k) 	// output [13:0] date_sin_1k_sig
);
endmodule 
